import request from '@/utils/http';

/**
 * 物流管理相关接口
 */
const logisticsApi = {
  /**
   * 获取物流公司列表
   * @param {Object} params - 查询参数
   * @returns {Promise} 请求结果
   */
  getLogisticsCompanyList(params = {}) {
    return request({
      url: '/logistics/companies',
      method: 'get',
      params
    });
  },

  /**
   * 获取物流公司详情
   * @param {Number} id - 物流公司ID
   * @returns {Promise} 请求结果
   */
  getLogisticsCompanyDetail(id) {
    return request({
      url: `/logistics/companies/${id}`,
      method: 'get'
    });
  },

  /**
   * 创建物流公司
   * @param {Object} data - 物流公司数据
   * @returns {Promise} 请求结果
   */
  createLogisticsCompany(data) {
    return request({
      url: '/logistics/companies',
      method: 'post',
      data
    });
  },

  /**
   * 更新物流公司
   * @param {Number} id - 物流公司ID
   * @param {Object} data - 物流公司数据
   * @returns {Promise} 请求结果
   */
  updateLogisticsCompany(id, data) {
    return request({
      url: `/logistics/companies/${id}`,
      method: 'put',
      data
    });
  },

  /**
   * 删除物流公司
   * @param {Number} id - 物流公司ID
   * @returns {Promise} 请求结果
   */
  deleteLogisticsCompany(id) {
    return request({
      url: `/logistics/companies/${id}`,
      method: 'delete'
    });
  },

  /**
   * 获取物流订单列表
   * @param {Object} params - 查询参数
   * @returns {Promise} 请求结果
   */
  getLogisticsOrderList(params = {}) {
    return request({
      url: '/logistics/orders',
      method: 'get',
      params
    });
  },

  /**
   * 获取物流订单详情
   * @param {Number} id - 物流订单ID
   * @returns {Promise} 请求结果
   */
  getLogisticsOrderDetail(id) {
    return request({
      url: `/logistics/orders/${id}`,
      method: 'get'
    });
  },

  /**
   * 创建物流订单
   * @param {Object} data - 物流订单数据
   * @returns {Promise} 请求结果
   */
  createLogisticsOrder(data) {
    return request({
      url: '/logistics/orders',
      method: 'post',
      data
    });
  },

  /**
   * 更新物流订单
   * @param {Number} id - 物流订单ID
   * @param {Object} data - 物流订单数据
   * @returns {Promise} 请求结果
   */
  updateLogisticsOrder(id, data) {
    return request({
      url: `/logistics/orders/${id}`,
      method: 'put',
      data
    });
  },

  /**
   * 删除物流订单
   * @param {Number} id - 物流订单ID
   * @returns {Promise} 请求结果
   */
  deleteLogisticsOrder(id) {
    return request({
      url: `/logistics/orders/${id}`,
      method: 'delete'
    });
  },

  /**
   * 查询物流信息
   * @param {String} trackingNumber - 物流单号
   * @param {String} company - 物流公司代码
   * @returns {Promise} 请求结果
   */
  trackLogistics(trackingNumber, company) {
    return request({
      url: '/logistics/track',
      method: 'get',
      params: { 
        tracking_number: trackingNumber,
        company
      }
    });
  },

  /**
   * 打印物流单
   * @param {Number} id - 物流订单ID
   * @returns {Promise} 请求结果
   */
  printLogisticsOrder(id) {
    return request({
      url: `/logistics/orders/${id}/print`,
      method: 'get',
      responseType: 'blob'
    });
  }
};

export default logisticsApi; 